// pages/notice/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    totalPage: 0, // 总页数
    queryParams: {
      pageNum: 1,
      pageSize: 10,
    },
    pullFlag: false, // 是否向上拉动到底部
    tableList: [],
    listTip: '上拉加载更多'
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getList()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    const queryParams = { pageNum: 1,  pageSize: 10 }

    this.setData({ 
      pullFlag: false,
      queryParams
    })

    this.getList()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    let { pageNum, pageSize } = this.data.queryParams

    if (pageNum < this.data.totalPage) {

      pageNum += 1
      this.setData({  
        pullFlag: true,
        queryParams: { pageNum,  pageSize },
      })
      this.getList()
    }
  },

  // 列表请求
  getList() {
    this.setData({ listTip: '加载中...' })

    wx.$req({
      url: '/system/notice/list',
      method: 'get',
      data: {...this.data.queryParams},
      loadingText: '加载中'
    }).then(res => {
      
      let totalPage = Math.ceil(res.data.total / 10)
      let rows = this.data.tableList

      if (totalPage == 1 || this.data.totalPage === totalPage ) {
        this.setData({ listTip: '暂无更多' })
      } else {
        this.setData({ listTip: '上拉加载更多' })
      }

      if (totalPage == 0) {
        this.setData({ listTip: '暂无内容' })
      }
    
      // 列表数据：为true 则需要push, false，则直接覆盖
      if (this.data.pullFlag) {
        rows.push(...res.data.rows)
      } else {
        rows = res.data.rows
      }

      this.setData({ 
        tableList: rows,
        totalPage: totalPage
      })
    }).finally(() => { wx.stopPullDownRefresh() })
  },

  toDetail(e) {

    const info = JSON.stringify(e.currentTarget.dataset.info)

    wx.navigateTo({
      url: '/pages/noticeDetail/index',
      success: function(res) {
        res.eventChannel.emit('info', { data: info })
      }
    })
  }
})